<html>
<head>
<title>javax.management.loading package</title>
<!--
Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.  Oracle designates this
particular file as subject to the "Classpath" exception as provided
by Oracle in the LICENSE file that accompanied this code.

This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).

You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
or visit www.oracle.com if you need additional information or have any
questions.
-->
</head>
<body bgcolor="white">

      <p>Provides the classes which implement advanced dynamic
	loading.  See the chapter <em>Advanced Dynamic Loading</em> in
	the <a href="#spec">JMX Specification</a>.</p>

      <p>An MBean that is of a subclass of {@link
	java.lang.ClassLoader} can be used as a class loader to create
	other MBeans via the method {@link
	javax.management.MBeanServer#createMBean(String, ObjectName,
	ObjectName, Object[], String[])}, and to instantiate arbitrary
	objects via the method {@link
	javax.management.MBeanServer#instantiate(String, ObjectName,
	Object[], String[])}.  The {@link
	javax.management.loading.MLet MLet} class is an example of
	such an MBean.  It is a {@link java.net.URLClassLoader
	URLClassLoader}, so the list of URLs to load classes from can
	be configured.</p>

      <p>Additionally, an <code>MLet</code> can read a configuration
	file that specifies a set of MBeans to be registered in the same
	MBean Server as the <code>MLet</code>.</p>

      <p>Every MBean Server has a <em>class loader repository</em>
	containing all MBeans registered in that MBean Server that
	are of a subclass of {@link java.lang.ClassLoader}.  The class
	loader repository is used by the forms of the
	<code>createMBean</code> and <code>instantiate</code> methods
	in the {@link javax.management.MBeanServer MBeanServer}
	interface that do not have an explicit loader parameter.  It
	is also used by the <code>MLet</code> class when it does not
	find a class in its own set of URLs.</p>

      <p>If an MBean implements the interface {@link
	javax.management.loading.PrivateClassLoader PrivateClassLoader},
	then it is not added to the class loader repository.  The class
	{@link javax.management.loading.PrivateMLet PrivateMLet} is a
	subclass of <code>MLet</code> that implements
	<code>PrivateClassLoader</code>.</p>

    <p id="spec">
    @see <a href="{@docRoot}/../technotes/guides/jmx/">
      Java Platform documentation on JMX technology</a>,
    in particular the 
    <a href="{@docRoot}/../technotes/guides/jmx/JMX_1_4_specification.pdf">
      JMX Specification, version 1.4(pdf).</a>

      @since 1.5
</BODY>
</HTML>
